vEZBA 3:
**********************************************************************
Sa konstruktorima, bez delimicne dodele.,
Projektovati klasu za vremena
atributi: Dan, Cas, minut sekund
Metode: Stvaranje na osnovu 4 cela broja, obezbediti potrebne opsege vrednosti atributa.

-Stvaranje na osnovu ukupnog broja sekundi
-dohvatanje atributa, citanje, pisanje, uporeivanje dva merenja, rezultat je <>=0
-Zbir dva vremena, razlika dva vremena
-mnozenje celim brojem, deljenje celim brojem
-stvaranje na osnovu realnog broja dana
-preracunavanje realne dane
**********************************************************************
KLASA.H

#include <iostream>
using namespace std;
class Vreme
{
	int dan, cas, min, sec;
public:
	Vreme(int d,int c,int m,int s)
	{
		sec=s%60;
		min=(m+int(s/60))%60;
		cas=(c+int(m+int(s/60))/60)%24;
		dan=d+int(c+int(m+int(s/60))/60)/24;
	}
	Vreme(int s)
	{
		sec=int(s%60);
		min=int(s/60)%60;
		cas=int(s/3600)%24;
		dan=int(s/3600/24);
	}
	int Dan()const{return dan;}
	int Cas()const{return cas;}
	int Min()const{return min;}
	int Sec()const{return sec;}
	void Sastavljanje(int d,int c,int m,int s)
	{
		sec=s%60;
		min=(m+int(s/60))%60;
		cas=(c+int(m+int(s/60))/60)%24;
		dan=d+int(c+int(m+int(s/60))/60)/24;
	}
	void Pisi()const
	{
		cout << "Vreme je: " << dan << " dan(a),"<< cas << " sat(i),";
		cout << min << " minut(a)," << sec << " sekund(i)\n"; 
	}
	void Citaj()
	{
		int d,c,m,s;
		cin >>d>>c>>m>>s;
		Sastavljanje(d,c,m,s);
	}
	Vreme Zbir(int d,int c,int m,int s)
	{
		Vreme v1(0);
		v1.Sastavljanje(d+dan,c+cas,m+min,s+sec);
		return v1;
	}
	int Sekunde()const{return sec+min*60+cas*3600+dan*3600*24;}
	int Uporedi(Vreme v)const
	{
		if(v.Sekunde()<Sekunde()) return 1;
		else if(v.Sekunde()==Sekunde()) return 0;
			else return -1;
	}
	Vreme Razlika(int d,int c,int m,int s)
	{
		Vreme v1(0);
		v1.Sastavljanje(d-dan,c-cas,m-min,s-sec);
		return v1;
	}
	void Mnozenje(int a){*this=Vreme(Sekunde()*a);}
	void Delenje(int a){*this=Vreme(Sekunde()/a);}
	void RealDan(double d){*this=Vreme(d*86400);}
	double RealDani(){return double((double)Sekunde()/86400);}
};

PROGRAM.CPP

#include "Klasa.h"
#include <iostream>
using namespace std;
void main()
{
	Vreme v1(86400),v2(100000),v3(0);
	v1.Pisi();
	v2.Pisi();
	cout << "\nZbir\n";
	v3=v1.Zbir(v2.Dan(),v2.Cas(),v2.Min(),v2.Sec());
	v3.Pisi();
	cout << "\nMnozenje\n";
	v1.Mnozenje(3);
	v1.Pisi();
	cout << "\nDelenje\n";
	v1.Delenje(3);
	v1.Pisi();
	cout << "\nKreiranje iz realnog dana\n";
	v1.RealDan(15.667);
	v1.Pisi();
	cout << "\nPrebacivanje u realan dan\n";
	double d=0;
	d=v1.RealDani();
	cout << d<<"\n";
}